package com.sakiko.config;

import com.sakiko.interceptors.AInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * projectName: com.sakiko.config
 *
 * @author: Yang
 * description: 配置类
 * WebMvcConfigurer: spring mvc提供的！当需要在配置类中配置 MVC相关组件时使用！！
 * 该接口规定了配置 Mvc各种组件的方法
 * time: 2025/7/27 23:15
 */

@Configuration
public class AConfig implements WebMvcConfigurer {

    // 不仅为了将拦截器配置到 ioc容器，还需要配置拦截和放行地址，获取优先级
//    @Bean // 单纯加到 ioc容器 @Bean
//    public HandlerInterceptor aInterceptor(){
//        return new AInterceptor();
//    }

    @Autowired
    private AInterceptor aInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(aInterceptor) // 添加拦截器  new 一个也可以
                .addPathPatterns("/**") // 拦截所有地址
                .excludePathPatterns("/a", "/b") // 不拦截部分地址
                .order(1); //设置优先级

        registry.addInterceptor(new AInterceptor()) // 可以是不同的拦截器 添加进来即可
                .addPathPatterns("/**") // 拦截所有地址
                .excludePathPatterns("/a", "/b") // 不拦截部分地址
                .order(1); //设置优先级
    }
}
